﻿
using System;
using System.ServiceModel;

namespace RenewalProjects.Libraries.Wcf.EasyProxy.Tests.TestData
{
	public class TestChannel : ITest, ICommunicationObject
	{
		public virtual string GetName()
		{
			throw new NotImplementedException();
		}

		public virtual void DoSomethingDodgy()
		{
			throw new NotImplementedException();
		}

		public void ThrowErrorFirstFewTimes()
		{
			throw new NotImplementedException();
		}

		public event EventHandler Closed = delegate {};

		public event EventHandler Closing = delegate {};

		public event EventHandler Faulted = delegate {};

		public event EventHandler Opened = delegate {};

		public event EventHandler Opening = delegate {};

		public virtual CommunicationState State
		{
			get
			{
				throw new NotImplementedException();
			}
		}

		public virtual void Abort()
		{
			Faulted(this, null);
		}

		public virtual void Close()
		{
			Closed(this, null);
		}

		public virtual void Close(TimeSpan timeout)
		{
			throw new NotImplementedException();
		}

		public IAsyncResult BeginClose(AsyncCallback callback, object state)
		{
			throw new NotImplementedException();
		}

		public IAsyncResult BeginClose(TimeSpan timeout, AsyncCallback callback, object state)
		{
			throw new NotImplementedException();
		}

		public void EndClose(IAsyncResult result)
		{
			throw new NotImplementedException();
		}

		public virtual void Open()
		{
			Opened(this, null);
		}

		public virtual void Open(TimeSpan timeout)
		{
			throw new NotImplementedException();
		}

		public IAsyncResult BeginOpen(AsyncCallback callback, object state)
		{
			throw new NotImplementedException();
		}

		public IAsyncResult BeginOpen(TimeSpan timeout, AsyncCallback callback, object state)
		{
			throw new NotImplementedException();
		}

		public void EndOpen(IAsyncResult result)
		{
			throw new NotImplementedException();
		}
	}
}
